import Vue from 'vue'
import Vuex from 'vuex'
import { setItem, getItem } from '@/utils/storage.js'
// import { Form } from 'vant'
Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    // 保存公共数据
    // 在tokenInfo中保存token和refresh_token
    tokenInfo: getItem('tokenInfo') || {},
    photo: getItem('photo') || '' // 用户头像,一个url地址
  },
  mutations: {
    // 修改头像
    mSetPhoto (state, newPhotoUrl) {
      state.photo = newPhotoUrl
      setItem('photo', newPhotoUrl)
    },
    // 补充mutation来设置tokenInfo
    mSetTokenInfo (state, tokenObj) {
      state.tokenInfo = tokenObj
      // 把这个token信息做持久化。 调用storage.js中的方法
      setItem('tokenInfo', tokenObj)
    },
    mUpdateToken (state, newToken) {
      // 收到更新state.tokenInfo
      state.tokenInfo.token = newToken
      setItem('tokenInfo', state.tokenInfo)
    },
    mClearTokenInfo (state) {
      state.tokenInfo = {}
      setItem('tokenInfo', state.tokenInfo)
    }
  },
  actions: {
  },
  modules: {
  }
})
